<?php
// +----------------------------------------------------------------------
// | SentCMS [ WE CAN DO IT JUST THINK IT ]
// +----------------------------------------------------------------------
// | Copyright (c) 2013 http://www.tensent.cn All rights reserved.
// +----------------------------------------------------------------------
// | Author: molong <molong@tensent.cn> <http://www.tensent.cn>
// +----------------------------------------------------------------------

namespace app\index\controller;
use app\common\controller\Fornt;

class Content extends Fornt{

	public function _initialize(){
		parent::_initialize();
		$model_name = $this->request->param('model');
		$model_id = $this->request->param('model_id');
		$row = db('Model')->select();
		foreach ($row as $key => $value) {
			$name_list[$value['name']] = $value;
			$id_list[$value['id']] = $value;
		}

		if (empty($name_list[$model_name]) && empty($id_list[$model_id])) {
			return $this->error("无此模型！");
		}else {
			$this->modelInfo = $model_name ? $name_list[$model_name] : $id_list[$model_id];
			if ($this->modelInfo['extend'] > 1) {
				$this->model = model($this->modelInfo['name']);
			}else{
				$this->model = model('Document')->extend($this->modelInfo['name']);
			}

			$this->assign('model_id',$this->modelInfo['id']);
			$this->assign('model_list',$name_list);
		}
	}

	//模块频道首页
	public function index(){
		$id = input('id','','trim,intval');
		$name = input('name','','trim');
		if ($name) {
			$id = db('Category')->where(array('name'=>$name))->getField('id');
		}

		if (!$id) {
			return $this->error("无此频道！");
		}

		$cate = $this->getCategory($id);

		//获得当前栏目的所有子栏目
		$ids = get_category_child($id);

		$data = array(
			'category'  => $cate,
			'child_cate' => $ids
		);
		if ($cate['template_index']) {
			$teamplate = 'content/'.$this->modelInfo['name'].'/'.$cate['template_index'];
		}else{
			$teamplate = 'content/'.$this->modelInfo['name'].'/index';
		}
		$this->assign($data);
		return $this->fetch($teamplate);
	}

	//模块列表页
	public function lists($id = '', $name = ''){
		if ($name) {
			$id = db('Category')->where(array('name'=>$name))->getField('id');
		}

		if (!$id) {
			return $this->error("无此栏目！");
		}
		
		$cate = $this->getCategory($id);

		//获得当前栏目的所有子栏目
		$ids = get_category_child($id);
		$map['category_id'] = array('IN',$ids);
		$map['model_id'] = $this->modelInfo['id'];
		$map['status'] = array('GT',0);

		if ($this->modelInfo['extend'] > 1) {
			$order = "id desc";
		}else{
			$order = "is_top desc,id desc";
		}
		
		$list = $this->model->where($map)->order($order)->paginate(15);

		$data = array(
			'list'    => $list,
			'cate'   => $cate,
			'page'    => $list->render()
		);

		if ($cate['template_lists']) {
			$teamplate = 'content/'.$this->modelInfo['name'].'/'.$cate['template_lists'];
		}else{
			$teamplate = 'content/'.$this->modelInfo['name'].'/list';
		}
		$this->setSeo($cate['title']);
		$this->assign($data);
		return $this->fetch($teamplate);
	}

	//模块内容详情页
	public function detail($id = '', $name = ''){
		//当为文章模型时
		$info = $this->model->detail($id);

		//文档模型数据统计,同一台电脑半小时更新一次
		if ($this->modelInfo['extend'] = 1 && (time() - session('set_content_view')) > 1800) {
			db('Document')->where(array('id'=>$id))->setInc('view');
			session('set_content_view',time());
		}

		if (empty($info)) {
			return $this->error("无此内容！");
		}

		$data = array(
			'info'    => $info
		);
		if ($name) {
			$teamplate = 'content/'.$this->modelInfo['name'].'/'.$name;
		}else{
			$teamplate = 'content/'.$this->modelInfo['name'].'/detail';
		}
		$this->assign($data);
		return $this->fetch($teamplate);	
	}

	protected function getCategory($id){
		$data = db('Category')->find($id);
		return $data;
	}
}